home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / flinker.arc / FLINKER.MAN next >
Text File  |  1989-12-14  |  10KB  |  276 lines

  1.  
  2.  
  3.  
  4.                            **** FLINKER ****
  5.         
  6.                                  V 3.2
  7.  
  8.               An even faster PD-linker for GST format files
  9.  
  10.                  by Gottfried Ira       Vienna, 12 Dec 89
  11.  
  12.           ( Based upon a program developed by Ingo Eichenseher )               
  13.                   ( as published in "ST Computer" 3/88 )
  14.  
  15.  
  16.  German text first, as I prefer my mother tongue ...
  17.  
  18.  
  19.  I) Allgemeines Blabla
  20.  
  21.    Nachdem ich endlich das Listing aus ST-Computer 3/88 abgetippt
  22.    (Adler-Suchsystem!!!) hatte und infolge etlicher Tippfehler gezwungen war,
  23.    den Programmtext näher zu betrachten, reifte dann die Erkenntnis ( wie
  24.    immer, wenn man fremde Programme studiert! ), daß es da etliches zu
  25.    verbessern gäbe. In den folgenden Monaten, jeweils so zwischen Nachtmahl
  26.    und Schlafengehen, fand sich ein Bug da, eine Inkonsistenz dort, und
  27.    mehrere geopferte Wochenenden brachten größere Straffungen im Code.
  28.    Das Ergebnis finde ich recht brauchbar, ...vielleicht Du auch ?!
  29.    Das leitet über zu den
  30.  
  31.  
  32.  II) Verbesserungen/Änderungen
  33.    gegenüber Ingos Original.
  34.  
  35.       1. und wichtigstens:   SPEEEEEEEED!!!
  36.          bei großen Programmen (>100kB) etwa 2mal flinker und
  37.          somit mehr als 6mal flinker als GST-Link!
  38.  
  39.       2. BSS (UDATA) frißt beim Linken keinen Speicherplatz mehr.
  40.          Wem es Spaß macht, kann nun (leere) Gigabytes in die BSS stopfen.
  41.  
  42.       3. '-WITH', '-LIST' und '-PROG' verwenden 'LNK', 'MAP' und 'PRG' als
  43.          Default-Extension.
  44.  
  45.       4. 'Data'-Befehl in der Steuerdatei erlaubt (wie GST-Link).
  46.           Syntax:
  47.                DATA <dezimalzahl>[K]
  48.           Groß/Kleinschreibung ist unerheblich.
  49.           'K', falls vorhanden, multipliziert <value> mit 1024.
  50.  
  51.       5. Prospero-Fortran-Kompilate lassen sich nun linken;
  52.          dazu waren ua. die Punkte 6 (?!?!?!?!) und 7 nötig.
  53.          ( Nur mit Option '-NOSEC' !! )
  54.  
  55.       6. 'XREF' an ungeraden Adressen zulässig.
  56.  
  57.       7. Behandlung von Common-Sections nun korrekt (ein frommer Wunsch...).
  58.  
  59.       8. 'Chunks', die gemeinsam eine 'Subsection' ausmachen liegen jetzt
  60.          dicht an dicht, ohne Füll-Bytes (wie GST-Link).
  61.  
  62.       9. Option '-BUF 0' ist gültig. Allerdings werden dann die LIBRARYs
  63.          nicht mehr durchsucht, sondern im Ganzen dazugelinkt!
  64.          ( Ist also in der Auswirkung ident zur Ersetzung aller
  65.          LIBRARYs durch INPUTs.)
  66.  
  67.       10. Unauffindbare '.BIN'-Dateien brechen den Linkvorgang nicht
  68.           mehr ab.
  69.  
  70.       11. Assemblierung einiger zeitkritischer Routinen (was ua. für
  71.           Punkt 1 verantwortlich ist) und ... und ... und ...
  72.  
  73.  
  74.  III) Und das war's auch schon.
  75.  
  76.    Falls Du, geneigter Anwender, Dich genauso schlau fühlst wie zuvor, sei
  77.    die Lektüre des Artikels aus 'ST-Computer' 3/88 ans Herz gelegt, dessen
  78.    Kenntnis ich hier voraussetze. Ich bin ein lausig langsamer Tippsler und
  79.    und verbringe meine Nächte lieber mit anregenderen Dingen ( zB FLINKER
  80.    weiterzuentwickeln oder einen Code-Optimierer für Lattice-C... ) als
  81.    Abschreiben von Artikeln. Ansonsten einfach LINKER durch FLINKER ersetzen
  82.    und alles läuft wie gehabt, nur schneller.
  83.  
  84.    Flüche, Wehklagen, Aufmunterungen, Liebeserklärungen uä. mehr an
  85.          Gottfried Ira
  86.          Peilgasse 51/19
  87.          A-1080 Wien
  88.  
  89.    Es geht auch über Roberts Anschluß an  E359205@AWITUW01.BITNET
  90.                                           E359205@AWITUW01.UNA.AT
  91.                                           MESSAROS@EUEV88.BITNET
  92.                                           MESSAROS@EUEV88.UNA.AT
  93.  
  94.  PS.  Wie üblich entzieht sich der Programmierer jeder Verantwortung.
  95.    Das Programm ist natürlich Public Domain. Wenn aber jemand glaubt, sich
  96.    zum Mäzen eines notleidenden PD-Autors aufschwingen zu müssen, soll's
  97.    mir auch recht sein...
  98.  
  99.  
  100.  
  101.  And now the English text ...
  102.  
  103.  
  104.  I) Introduction
  105.  
  106.    To start with, my knowledge of English is poor and my typewriting even
  107.    worse. Therefore I'll try to put it briefly.
  108.  
  109.    This is an upgraded version of GSTLINK (or LINKER, or LD) a PD-program
  110.    intended as substitute for LINK by GST. (As distributed eg. with Lattice-C.)
  111.    FLINKER is 2 to 3 times faster ( when applied to >150kb programs ) than GSTLINK
  112.    which itself claims to be 3 times faster than the original LINK by GST.
  113.  
  114.    If you are familiar with GSTLINK (as I hope) a small summary of
  115.    improvements will be sufficient.
  116.  
  117.  
  118.  II) Summary of Improvements over GSTLINK
  119.  
  120.       1.   .......... SPEEED!!!
  121.  
  122.       2. FLINKER does no longer keep BSS (UDATA) in memory, which saves
  123.          space and speeds up the linking process.
  124.  
  125.       3. Options '-WITH', '-LIST' and '-PROG' will use 'LNK', 'MAP' and
  126.          'PRG' as default extensions.
  127.  
  128.       4. New control file command:
  129.             DATA <decimal value>[K]    ( upper- or lowercase )
  130.          ...will add <decimal value> bytes to BSS.
  131.          If added, 'K' will multiply <decimal value> by 1024.
  132.  
  133.       5. '.BIN'-files output by the Prospero FORTRAN compiler will be
  134.          accepted by FLINKER. ( Sorry, option '-NOSEC' only! )
  135.          I have strong objections against FORTRAN, therefore I did not
  136.          much testing on this.
  137.  
  138.       6. '-BUF 0' is now a legal option. If specified, libraries will be
  139.          included with any, even unreferenced, module. So all 'LIBRARY'
  140.          commands in the control file will have the effect of 'INPUT'
  141.          commands.
  142.  
  143.       All other differences regard mostly the inner workings of FLINKER,
  144.       and probably will never be noticed.
  145.  
  146.  
  147.  III) Summary of Differences to LINK (original GST)
  148.  
  149.    General Differences
  150.    FLINKER is a one-pass linker which holds all linked code in main memory.
  151.    It is optimized for use with GEMDOS, and will not produce absolute code,
  152.    (i.e. code that lives only at a fixed address). Several rarely used
  153.    features (with Lattice-C) are omitted.
  154.  
  155.    Omitted Control File Commands
  156.    - 'EXTRACT ... FROM ...'
  157.    - 'SECTION ...'
  158.    - 'COMMON ...'
  159.    - 'OFFSET ...'
  160.    - 'DEFINE ...'
  161.  
  162.    Omitted Command Line Options
  163.    - '-CRF'
  164.    - '-PAGELEN ...'
  165.  
  166.    New Command Line Options
  167.    - '-SEC'
  168.          Sections named 'BSS' or 'UDATA' will be put into
  169.          GEMDOS Block Storage Section (which requires no disk space),
  170.          'DATA' into GEMDOS Data Section and all others into GEMDOS
  171.          Text Section.
  172.    - '-NOSEC'
  173.          All sections will be put into GEMDOS Text Section (like
  174.          LINK by GST). The file size of the executable program will
  175.          usually be longer than those produced with option '-SEC'.
  176.    - '-MEM <size>'            ( 2 < <size> < 4000 )
  177.          Reserves <size> kbytes for program memory. Should be larger
  178.          than the expected size of the executable file. Too small  <size>
  179.          will result in error 1.
  180.    - '-BUF <size>'            ( <size> < 800 )
  181.          Reserves <size> kbytes for the module buffer.  Should be larger
  182.          than the largest module within the files scanned by the
  183.          'LIBRARY' command. Too small <size> will result in error 9.
  184.  
  185.  
  186.  IV) How to Run FLINKER
  187.  
  188.    Exactly like GSTLINK or LINKER or LD or whatever you called it.
  189.    Double-click on FLINKER.TTP and enter a command line with the following
  190.    format:
  191.  
  192.       [<module> [<control> [<listing> [<program>]]]] {<option>}
  193.  
  194.    where:
  195.  
  196.       <option> = -WITH <control> |
  197.                  -NOPROG  | -PROG [<program>] |
  198.                  -NOLIST  | -LIST [<listing>] |
  199.                  -NODEBUG | -DEBUG  |
  200.                  -NOSYM   | -SYM  |  
  201.                  -NOSEC   | -SEC  |
  202.                  -MEM <size>  |  -BUF <size>
  203.       (options are case insensitive)
  204.  
  205.       <module>   file name of an object file  ( default: <module>.BIN )
  206.       <control>  file name of control file    ( default: <module>.LNK )
  207.       <program>  file name for program output ( default: <module>.PRG )
  208.       <listing>  file name for listing output ( default: <module>.MAP )
  209.       <size>     decimal number (kbytes)
  210.  
  211.       Default options:  -NOLIST -NODEBUG -NOSYM -NOSEC -MEM 100 -BUF 32
  212.  
  213.  
  214.  V